package cn.cmvideo.springboot;

import java.io.UnsupportedEncodingException;
import java.util.Base64;

/**
 * 在Java 8中，Base64编码已经成为Java类库的标准。<br>
 * 1.基本：输出被映射到一组字符A-Za-z0-9/，编码不添加任何行标，输出的编码仅支持A-Za-z0-9/<br>
 * 2.URL：输出映射到一组字符A-Za-z0-9_，输出是URL和文件<br>
 * 3.MIME：输出映射到MIME友好格式，输出每行不超过76字符，并且使用'\r'并跟随'\n'作为分割。编码输出最后没有行分割。
 * 
 * @author Administrator
 *
 */
public class Java8Base64
{
	public static void main(String[] args)
	{
		String str = "2018国庆节java8输出每行不超过76字符";
		try
		{
			String encodeToString = Base64.getEncoder().encodeToString(str.getBytes("UTF-8"));
			System.out.println("Base64 编码字符串 (基本) :" + encodeToString);

			byte[] decode = Base64.getDecoder().decode(encodeToString);
			System.out.println("原始字符串:" + new String(decode, "UTF-8"));
			
			String encodeToString2 = Base64.getUrlEncoder().encodeToString(str.getBytes("UTF-8"));
			System.out.println("Base64 编码字符串 (URL) :" + encodeToString2);
			
			String encodeToString3 = Base64.getMimeEncoder().encodeToString(str.getBytes("UTF-8"));
			System.out.println("Base64 编码字符串 (MIME) :" + encodeToString3);

		} catch (UnsupportedEncodingException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
